(game "Broken Line" (players 2) (equipment { (board ( )) (piece "Marker" Each) }) (rules (play (move Add (to (sites Empty)))) (end (if (is Line ) (result Mover ))) ) ) //------------------------------------------------------------------------------ (option "Line Size" args:{ } { (item "3" <3> "The length of the line is 3 or more.") (item "4" <4> "The length of the line is 4 or more.")* (item "5" <5> "The length of the line is 5 or more.") (item "6" <6> "The length of the line is 6 or more.") (item "7" <7> "The length of the line is 7 or more.") }) (option "Board Size" args:{ } { (item "3x3" <3> "The game is played on a 3x3 board.") (item "4x4" <4> "The game is played on a 4x4 board.") (item "5x5" <5> "The game is played on a 5x5 board.") (item "6x6" <6> "The game is played on a 6x6 board.") (item "7x7" <7> "The game is played on a 7x7 board.") (item "8x8" <8> "The game is played on a 8x8 board.") (item "9x9" <9> "The game is played on a 9x9 board.") (item "10x10" <10> "The game is played on a 10x10 board.")* (item "11x11" <11> "The game is played on a 11x11 board.")** (item "12x12" <12> "The game is played on a 12x12 board.") (item "13x13" <13> "The game is played on a 13x13 board.") (item "14x14" <14> "The game is played on a 14x14 board.")* (item "15x15" <15> "The game is played on a 15x15 board.") (item "16x16" <16> "The game is played on a 16x16 board.") (item "17x17" <17> "The game is played on a 17x17 board.")* (item "18x18" <18> "The game is played on a 18x18 board.") (item "19x19" <19> "The game is played on a 19x19 board.") }) (option "Board" args:{ } { (item "Hex Diamond" "The board is a diamond tiling by hexagon.")* (item "Square Diamond" "The board is a diamond tiling by square.") (item "Triangle Diamond" "The board is a diamond tiling by triangle.") (item "Brick Diamond" "The board is a diamond tiling by brick.") (item "Square" "The board is a square tiling by square.") (item "hex" "The board is a hexagon tiling by hexagon.") (item "tri" "The board is a triangle tiling by triangle.") }) (option "Swap Rules" args:{ } { (item "On" <(meta (swap))> "The game uses the swap rule.")* (item "Off" <> "The game does not use the swap rule.") }) (option "End Rules" args:{ } { (item "Standard" "The first player to connect their two sides wins.")* (item "Misere" "The first player to connect their two sides loses.") }) (option "Connection Type" args:{ } { (item "Diagonal" "The connection between two stones is using all the diagonal directions.")* (item "Orthogonal" "The connection between two stones is using all the orthogonal directions.") (item "All" "The connection between two stones is using all the directions.") (item "Adjacent" "The connection between two stones is using all the adjacent directions.") (item "Off Diagonal" "The connection between two stones is using all the off Diagonal directions.") }) //------------------------------------------------------------------------------ (metadata (info { (description "Broken Line is a game played on a board tiling by hexagon. The goal is to make a line with stones connected diagonally.") (rules "Players take turns placing their pieces on one empty space on the board, with the goal of making a line with stones connected diagonally of at least length 4.") (id "999") (version "1.3.12") (classification "board/space/line") (author "Eric Piette") (credit "Eric Piette") (date "12-10-2020") } ) (graphics { (player Colour P1 (colour Red)) (player Colour P2 (colour Blue)) (board Colour OuterEdges (colour Black)) (board StyleThickness OuterEdges 3.0) }) (ai "Broken Line_ai" ) )